/**
 *  renderer.h
 *  AwkwardPaint - Engine
 *
 *  Date: 09/08/2013
 *
 *  Language: C++
 *
 *  @author Carl McCaffrey
 *
 */
#ifndef RENDERER_H
#define RENDERER_H

#include <Windows.h>

#include "utility/debug/debug_manager.h"
#include "renderer/sprite.h"

class Renderer: private DebugManager
{
    private:
		HINSTANCE* hInstance;
		HWND hWnd;

		HDC hDC;
		HGLRC hRC;

        float width, height;
        bool fullscreen, vsync;

        unsigned int LoadTexture(const char* filename, float* w, float* h);

    public:
        void Init(HINSTANCE* hinstance, float win_width, float win_height, bool full_screen, bool v_sync);
        void Shutdown(void);

        bool FullScreen(void);

        void BeginFrame(void);
        void EndFrame(void);

        void CreateSprite(Sprite* sprite, unsigned int flags, float x, float y, float w, float h, float scale, float orientation, const char* texture);
        void DrawSprite(Sprite* sprite);
};

#endif // RENDERER_H
